package com.cnpinxi.service;

import com.cnpinxi.dao.ProductEntityMapper;
import com.cnpinxi.domain.ProductEntity;
import com.cnpinxi.myRunTime.MyRunTimeExcption;
import com.cnpinxi.service.*;
import com.cnpinxi.util.GenerateID;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Date;
import java.util.List;

/**
 * Created by Baggio on 2017-6-29.
 */
public class ProductEntityBase extends com.cnpinxi.service.ProductBase {
    @Autowired
    ProductEntityMapper productEntityMapper;


    protected void deleteProductEntity(List<Long> productEntityIdList) {


        for (Long productEntityId : productEntityIdList
                ) {
            ProductEntity productEntity = productEntityMapper.getProductEntityById(productEntityId);
            productEntity.setStatus(ProductEntity.PRODUCT_ENTITY_STAUTS_UNVALID);
            productEntityMapper.updateProductEntityById(productEntity);
        }

    }


    protected void insertProductEntity(ProductEntity productEntity) {
        productEntity.setProductEntityId(GenerateID.CreatetID());
        productEntity.setStatus(ProductEntity.PRODUCT_ENTITY_STAUTS_VALID);
        productEntity.setCreateTime(new Date());

        productEntityMapper.insertProductEntity(productEntity);
    }

    protected void updateProductEntity(ProductEntity productEntity) {

        ProductEntity productEntity1 = productEntityMapper.getProductEntityById(productEntity.getProductEntityId());
        if (productEntity1 == null) {
            throw new MyRunTimeExcption("产品实体没有找到！");
        }
        if (productEntity.getProductId() != null) {
            productEntity1.setProductId(productEntity.getProductId());
        }
        if (StringUtils.isNotBlank(productEntity.getProductEntityName())) {
            productEntity1.setProductEntityName(productEntity.getProductEntityName());
        }
        if (StringUtils.isNotBlank(productEntity.getProductEntityIntroduction())) {
            productEntity1.setProductEntityIntroduction(productEntity.getProductEntityIntroduction());
        }
        if (productEntity.getRealPrice() != null) {
            productEntity1.setRealPrice(productEntity.getRealPrice());
        }
        if (productEntity.getPrice() != null) {
            productEntity1.setPrice(productEntity.getPrice());
        }
        if (productEntity.getProductEntityAmount() != null) {
            productEntity1.setProductEntityAmount(productEntity.getProductEntityAmount());
        }
        if (StringUtils.isNotBlank(productEntity.getProductEntityColour())) {
            productEntity1.setProductEntityColour(productEntity.getProductEntityColour());
        }
        if (StringUtils.isNotBlank(productEntity.getProductEntityColourCode())) {
            productEntity1.setProductEntityColourCode(productEntity.getProductEntityColourCode());
        }


        if (productEntity.getStatus() != null) {
            productEntity1.setStatus(productEntity.getStatus());

        }
        productEntityMapper.updateProductEntityById(productEntity1);

    }

    protected ProductEntity getProductEntityByProductEntityId(Long productEntityId) {
        return productEntityMapper.getProductEntityById(productEntityId);
    }


}
